In part 1 of this series, I explained what drove me to Home Assistant, what I hoped to accomplish, some of my frustrations, and my first attempt at basic setup.
It has been over a month since I first started tinkering with Home Assistant and I’ve made some progress!
Revisiting my frustrations
After nearly a month of fighting with Home Assistant to simply mount a USB hard drive that was plugged into the Raspberry Pi hosting a hass.io virtual machine I finally solved the problem…by buying a second Raspberry Pi.
That’s right folks, I gave up and threw money at the problem because fighting with Home Assistant just isn’t something I care to spend time doing anymore. I justified this purchase by telling myself it’s been about six years since I bought my other Raspberry Pi, I use it every day, and with two I can now have twice the fun! Plus I’m fairly certain that if I’d succeeded in mounting the drive, I would have next picked a fight to get pi.hole installed and ultimately melted the thing trying to run Home Assistant, Plex, pi.hole, a NAS, and RetroPi on the same Raspberry Pi.
The old 3B+ is now a dedicated Home Assistant server. Since I won’t be running anything else on it, I continued to be lazy and installed HA using the same process as before, simply flashing the SD card with a prebuilt installation of HA and a Docker virtual machine running hass.io.
The new Raspberry Pi 4 4GB model wasn’t easy to find given the current chip shortages and supply chain issues, but I camped the Canakit website until I saw some inventory pop up and immediately placed my order. After installing Raspbian I EASILY mounted my 10 TB USB hard drive. It then took a great many hours to figure out why the drive was mounted as read only and refused to allow me to change permissions*. With the drive set up I was able to quickly rebuild my network shares, and install and configure Plex. Pi.hole decided to introduce a fun new problem. Every time I turned it on my work VPN would shut off and cut my laptop’s access to the internet. I eventually found an advanced setting that allowed connections from all networks, which is a little less secure but solved the problem.
With all of that out of the way, I’d successfully burned about 24 waking hours simply setting up Home Assistant and a second Raspberry Pi running exactly the same applications I’d previously been running. Also, the new Raspberry Pi kit cost about $120, so this project now had a hefty time and dollar cost associated. One noticeable bonus, though, is that Plex is infinitely faster running on a Pi 4 than it was on a Pi 3.
*As it turns out, somehow when my USB drive was mounted default values for dmask and fmask were set to 0022, which makes the drive read only for just about everyone. The solution was to modify /etc/fstab where I set up the persistent mount and add umask=0000 which allows all users to have read write execute permissions on the drive. You can debate the security issues of doing this, but I was frustrated and I just don’t care. The likelihood of someone getting onto my home network and doing something malicious with the pictures and videos on my Raspberry Pi is pretty slim so it’s worth the risk.
Configuration…again
With my initial setup out of the way, I was free to start configuring all of my devices and services. Since I’d already set up most of the required developer accounts for the more complicated integrations, this went a little quicker than the first time. I was also able to solve the issues I had with a few of the more quirky integrations, like RainMachine. I spent a fair amount of time renaming devices along the way, since services like Insteon discover all devices by serial number. I was forced to walk around the house flipping switches on and off to match the serial numbers to the devices and then rename each one.
You can go a little crazy configuring integrations. I started adding application integrations, like Plex, and even added a few weather integrations with plans for some cool weather related automations (more on this later). I found interesting services that I may never use, such as a connection to my Brother laser printer, but felt compelled to set them up anyway.
I also rebuilt the automations mentioned in part one. This was another couple of hours invested to get me basically right back where I started.
New Frustrations
One of the reasons I wanted to start using Home Assistant was that I’d received these Sonoff Zigbee Motion Sensors which claim to work with Alexa, but don’t. Yes, you can use the Zigbee hub built into an Amazon Echo 4th Gen to discover the sensors, and yes you can create routines with them, but in all my testing they’d work at best one time and then fail to ever properly work again. Whether it’s an issue with the Echo’s Zigbee hub, the way Amazon allows you to build routines, or the Sonoff devices themselves I don’t know. But I’m apparently not alone in this frustration so I figured HA could come to the rescue. Turns out there’s a slight flaw in that plan. I need a Zigbee antenna to hook to my Raspberry Pi so HA can work as the Zigbee hub for these. Since the cheapest antenna I can find costs more than the motion sensors, and I’m now terrified to try to get HA to recognize anything connected via USB, I think I’m just going to give up and give these motion sensors away. I have plenty of other motion sensors from my Ring Alarm that work just fine and I’ve already spent enough time on this.
As mentioned earlier, I enabled a couple of weather app integrations and set up the required developer projects for each. I had seen a number of Home Assistant threads where people set up routines using AccuWeather or OpenWeatherMap to trigger automations when certain weather events occurred. These all looked pretty simple, as the triggers were conditions like “cloudy,” “rainy,” “sunny,” etc. However despite all the screenshots and conversations showing these conditions available with these integrations, they’re not readily available for me. I did quite a bit of research and just found myself frustrated by threads insisting these conditions were available but never showed up in my dropdown lists. I attempted to manually build the automations using the yaml configuration, but it also didn’t recognize the simple names of these conditions. Ultimately I decided my energy was better spent elsewhere and left this for another day. Someday I’m hoping that I can use these weather conditions to turn lights on or off depending on the weather. Today is not that day.
What Next?
I plan to only use Home Assistant to set up proactive automations or cross ecosystem integrations that aren’t available to me through other services. Given what I learned at the start of my smart home journey, having some kind of unified touch screen interface or one app to rule them all is a waste of effort for me. My wife, kids, and guests don’t care to use them, and things like voice actions, motion events, or dedicated buttons/switches are much more natural and intuitive for everyone. Now that I finally have all of my devices and integrations set up I can start getting creative. I plan to use my working Ring motion sensors to trigger light actions during hours where lights might not usually be on. I also want to use my Ring door and window sensors to enable/disable my HVAC if, for instance, my back door is left open for longer than five minutes. Sooner or later I’ll revisit weather automations, but for now I’m sour on the subject. When this was a free project, all of this was nice to have. Now that I’m $120 and 30+ waking hours into it, I feel like I have to find ways to get long term value from it.